package wo.resume.dto;

import java.util.ArrayList;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import wo.common.util.WoUtil;
import wo.resume.po.Education;
import wo.resume.po.Resume;

/**
 * PO实体Education对应的DTO父类.这是自动生成的代码,请不要修改.如要添加属性或者方法,请在其子类DTO中修改.
 * @author cailei
 */
class EducationDto_ {

	/**
	 * 主键id
	 */
	private java.lang.String id;

	/**
	 * 属性school
	 */
	private java.lang.String school;
	/**
	 * 属性startDate
	 */
	private java.util.Date startDate;
	/**
	 * 属性endDate
	 */
	private java.util.Date endDate;
	/**
	 * 属性grade
	 */
	private java.lang.String grade;

	
	/**
	 * 对应PO的resume属性,多对一关联实体Resume的主键值
	 */
	private java.lang.String resumeId;

	/**
	 * 对应PO的resume属性,多对一关联实体Resume的name属性值
	 */
	private java.lang.String resumeName;

	
	/**
	 * 无参构造函数
	 */
	public EducationDto_() {
	}

	/**
	 * 构造函数,通过po构造dto
	 */
	public EducationDto_(Education po) {
			// 设置主键id
		this.id = po.getId();
				// 设置属性school
		this.school = po.getSchool();
			// 设置属性startDate
		this.startDate = po.getStartDate();
			// 设置属性endDate
		this.endDate = po.getEndDate();
			// 设置属性grade
		this.grade = po.getGrade();
		
				// 设置DTO的resume属性值
		if (po.getResume() != null) {
			this.resumeId = po.getResume().getId();
			this.resumeName = po.getResume().getName();
		}
			}

	
	/**
	 * 主键id的getter方法
	 */
	public java.lang.String getId() {
		return this.id;
	}

	/**
	 * 主键id的setter方法
	 */
	public void setId(java.lang.String id) {
		this.id = id;
	}

	
	/**
	 * 属性school的getter方法
	 */
		public java.lang.String getSchool() {
		return this.school;
	}

	/**
	 * 属性school的setter方法
	 */
		public void setSchool(java.lang.String school) {
		this.school = school;
	}
	
	/**
	 * 属性startDate的getter方法
	 */
		@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
		public java.util.Date getStartDate() {
		return this.startDate;
	}

	/**
	 * 属性startDate的setter方法
	 */
		@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
		public void setStartDate(java.util.Date startDate) {
		this.startDate = startDate;
	}
	
	/**
	 * 属性endDate的getter方法
	 */
		@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
		public java.util.Date getEndDate() {
		return this.endDate;
	}

	/**
	 * 属性endDate的setter方法
	 */
		@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
		public void setEndDate(java.util.Date endDate) {
		this.endDate = endDate;
	}
	
	/**
	 * 属性grade的getter方法
	 */
		public java.lang.String getGrade() {
		return this.grade;
	}

	/**
	 * 属性grade的setter方法
	 */
		public void setGrade(java.lang.String grade) {
		this.grade = grade;
	}

	/**
	 * 属性resumeId的getter方法
	 */
	public java.lang.String getResumeId() {
		return resumeId;
	}

	/**
	 * 属性resumeId的setter方法
	 */
	public void setResumeId(java.lang.String resumeId) {
		this.resumeId = resumeId;
	}

	/**
	 * 属性resumeName的getter方法
	 */
	public java.lang.String getResumeName() {
		return resumeName;
	}

	/**
	 * 属性resumeName的setter方法
	 */
	public void setResumeName(java.lang.String resumeName) {
		this.resumeName = resumeName;
	}

	/**
	 * 将当前对象转化为po
	 * @return
	 */
	public Education createPO() {
		Education po = new Education();
			// 设置PO主键id
					if (WoUtil.isEmpty(this.id)) {
				po.setId(java.util.UUID.randomUUID().toString());
			} else {
				po.setId(this.id);
			}
						// 设置PO属性school
				po.setSchool(this.school);
					// 设置PO属性startDate
				po.setStartDate(this.startDate);
					// 设置PO属性endDate
				po.setEndDate(this.endDate);
					// 设置PO属性grade
				po.setGrade(this.grade);
				
				// 设置关系数据
		Resume resume = new Resume();
		if (!WoUtil.isEmpty(resumeId)) {
			resume.setId(this.resumeId);
			po.setResume(resume);
		}
			return po;
	}

	/**
	 * @param po
	 */
	public void updatePO(Education po) {
			// 设置PO属性school
		po.setSchool(this.school);
			// 设置PO属性startDate
		po.setStartDate(this.startDate);
			// 设置PO属性endDate
		po.setEndDate(this.endDate);
			// 设置PO属性grade
		po.setGrade(this.grade);
		
				// 设置PO的resume属性:M21
		if (!WoUtil.isEmpty(resumeId)) {
			Resume resume = new Resume();
			resume.setId(this.resumeId);
			po.setResume(resume);
		} else {
			po.setResume(null);
		}
		}
}
